オブジェクト:タスク
シンボル:
オブジェクトでタスクを設定します。優先度、タイプと時間動作、ウォッチドッグを設定できます。追加することもできます PROGRAM
コール。
オブジェクトは、デバイスツリーの下にあります。 タスク設定。
タブ:構成
オブジェクト: タスク
優先度 | 設定可能な値:0.. 31、0 が最高優先度 |
タスクグループ | 割り当てられた タスクグループ マルチコアの特定のプロセッサコアに割り当てることができます 例: IEC タスク 注:タスクグループは、デバイスツリーのタスクの後に括弧で囲まれて表示されます。 |
重要
Linuxでランタイムシステムを使用する場合、タスクグループと優先度の間に固定の依存関係が存在します。詳細については、以下を参照してください。 Linuxシステムでのタスクの優先順位のマッピング
タイプ
タイプ: | タスクの処理は周期的に行われます。 |
入力フィールド: 間隔 | 必須 タスクが再開されるまでの期間 (タスクサイクルタイム)
注:この目的のタスクサイクルタイムからのタスクの偏差は、実行時に定期的なジッターとして表示されます。 タブ:監視 タブ。 |
間隔の時間単位 | に数値のみが指定され、時間の定義は指定されていない場合 間隔 入力フィールド、次にここで選択した単位によって時間ディメンションが決まります。 例: ミリ秒 注:µs 単位のタスクサイクルタイムは常に数値で表示されます。 |
タイプ: | タスクの処理は、イベント変数の上昇端でイベントトリガーによって開始されます。 |
入力フィールド: イベント | グローバル変数 (ブール型) 変数値が 0 から 1 に切り替わるとすぐにタスクが開始されます。 |
タイプ: | タスクの処理は、イベント変数の上昇端でイベントトリガーによって開始されます。 |
リストボックス: イベント | ターゲットシステム依存イベントのリスト (Boolean 型) 注:ターゲットシステムによって、どのイベントがサポートされ、リストボックスに表示されるかが決まります。 ヒント:システムイベントと混同しないでください |
間隔 | での時間定義 注:イベントで時間定義が必要な場合にのみ使用できます |
タイプ: 自由奔放 | タスクの処理は、プログラムの開始時と実行終了後、一定の待機時間後に自動的に連続ループで再開されます。 重要:実行の完了後、タスクが再度実行されるまでに一定時間待機します。この期間は、最後のサイクル期間のパーセンテージです 注:サイクルタイムは定義しません。 |
タイプ: 状態 | タスクの処理は、イベント変数によってステートトリガーされて開始されます |
入力フィールド: イベント | グローバル変数 (ブール型) 変数の状態が 注: 変数は通常、タスク自体でリセットされます。イベントタスクとは対照的に、この方法ではイベントを見逃すことはありません。イベントが発生すると、スケジューラは古い値を保存する必要があり、これはチェックされるよりも頻繁に変更される可能性があります。そのため、イベント変数が次のように変更された場合、 |
重要
フィールドバスでは、決まった動作を保証するために固定サイクルマトリックスが必要です。したがって、 タイプ 自由奔放 バスサイクルタスク用。
重要
処理タイプには以下の違いがあることに注意してください。 ステータス と イベント: 指定したイベントで次の結果が出た場合 TRUE
次に、次のタイプのタスクの開始条件 ステータス 満たされています。これとは対照的に、あるタイプのタスクの開始です イベント からのイベントの切り替えが必要 FALSE
に TRUE
。タスクスケジューラのサンプリングレートが低すぎると、イベントの盛り上がりが見過ごされてしまうことがあります
重要
タスクサイクルタイムを設定するときは、現在使用されているバスシステムを特定する必要があります。たとえば、CAN バスシステムのタスクサイクルタイムは、現在設定されているボーレートとバスで使用されているフレーム数と一致している必要があります。さらに、ハートビート、ノードガーディング、および同期に設定する時間は、常にタスクサイクル時間の倍数でなければなりません。そうしないと、CAN フレームが失われる可能性があります。
詳細については、以下を参照してください。 タブ:監視
ウォッチドッグ
タスクの時間監視を定義します。ターゲットシステムが高度なウォッチドッグ設定をサポートしている場合、デバイスの説明に以下の設定があらかじめ定義されている可能性があります
デフォルトのウォッチドッグ設定はデバイスによって異なります。 | |
有効にする |
タスクがウォッチドッグの現在設定されている時間を超えると、タスクはエラーステータス(例外)で停止します。エラーが発生したタスクのアプリケーションとその子アプリケーションも停止されます。これにより、影響を受けたアプリケーションのすべてのタスクも停止されます。次に、現在定義されているのは 感度 も考慮されます。 オプションを有効にした場合 I/O の更新 で PLC 設定 PLC の、そして CODESYS 出力を定義済みのデフォルト値にリセットします。 . 考えられるケース:
|
時間 (例: t#200ms) | ウォッチドッグタイム 定義 (とともに) 感度) タスクのウォッチドッグ。説明: 有効にする。 ターゲットシステムによっては、監視期間は、可能であればタスク間隔のパーセンテージとして表示されます。この場合、ユニットのリストボックスは無効になり、表示されます %。 |
感度 | 番号 タスクのウォッチドッグを (ウォッチドッグと一緒に) 定義します。説明は 有効にする。 |
ヒント
ライブラリの関数を使用する CmpIecTask.library
、特定の PLC サイクルの間、ウォッチドッグを非アクティブ化できます。これは、初期化のためにより多くの時間を要するサイクルに役立ちます
ウォッチドッグの非アクティブ化/再アクティブ化:
VAR hIecTask : RTS_IEC_HANDLE; END_VAR hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); //Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); //Watchdog enabled
ウォッチドッグは、初期化の前に非アクティブ化されます IecTaskDisableWatchDog
残りのサイクルの間、次のサイクルで自動的に再アクティブ化されます。
ウォッチドッグは、初期化後に再アクティブ化できます IecTaskEnableWatchDog
.その後、ウォッチドッグはサイクルの残りの部分ですでに再アクティブ化されています (ウォッチドッグの時間ウィンドウは最初から再び開始されます)。
内で発生する機能ブロックの初期化 FB_Init
メソッドはこれによる影響を受けません。ただし、通信タイムアウトのため、30 秒未満という制限がありました。オンライン サービスは非同期で実行されるため、この時間制限は V3.5 SP18 以降存在しません。
ヒント
IEC タスクの実行時間がウォッチドッグ時間を超えると、IEC タスクの通常のウォッチドッグがトリガーされます。
「省略サイクル」ウォッチドッグは、タスクがまったく開始されないときにトリガーされます。これは、タスクが最大値の < サイクルをまったく実行しない場合です時間 * 感度> または <2 * 間隔>。原因としては、他のタスクが混み合っていたり、スケジューラーに障害が発生してタスクを実行できなくなったりすることが考えられます
プログラムコール
POU (POU タイプ付きのオブジェクト POU が呼び出される順序は、ここで設定した呼び出し順序の上から下に対応します。 | |
| 入力アシスタントを開きます。を選択します。 |
| 通話を削除します |
| 選択した通話の入力アシスタントを開きます。別のものを選択する |
| コールの位置をリスト内で上または下に移動します。呼び出し順序は実行時にそれに応じて変わります。 |
| の宣言と実装を含む POU エディタを開きます |